<?php
namespace catchAdmin\externalGoods\model\search;
use think\facade\Db;

trait NewsSearch
{
    //标题
    public function searchTitleAttr($query, $value, $data){
        return $query->whereLike('title', "%$value%");
    }

    //分类id
    public function searchCateIdAttr($query, $value, $data){
        return $query->where('cate_id', $value);
    }

    //分类名称
    public function searchCateNameAttr($query, $value, $data){
        return $query->where('cate_name', $value);
    }

    //来源
    public function searchSourceAttr($query, $value, $data){
        return $query->where('source', $value);
    }

    //推荐1
    public function searchIsRecAttr($query, $value, $data){
        return $query->where('is_rec', $value);
    }

    //推荐2  -热
    public function searchIsRec2Attr($query, $value, $data){
        return $query->where('is_rec2', $value);
    }

    //标签 标签是 逗号分隔的 用findInSet
    public function searchTagsAttr($query, $value, $data){
        return $query->whereFindInSet('tags', $value);
    }

    //来源名称 search_name
    public function searchSearchNameAttr($query, $value, $data){
        return $query->whereLike('search_name', "%$value%");
    }

    //新闻时间区间 post_time 格式是
    // post_time[0]: 2024-12-11
    // post_time[1]: 2025-01-20
    public function searchPostTimeAttr($query, $value, $data){
        return $query->whereBetweenTime('post_time', $value[0], $value[1]);
    }

   //分数搜索 score
   public function searchScoreAttr($query, $value, $data){
        return $query->where('score', $value);
   }

   //是否发布 publish 0 未发布 1 已发布
   public function searchPublishAttr($query, $value, $data){
        return $query->where('publish', $value);
   }

   //未分类资讯筛选 0-已分类 1-未分类
   public function searchUncategorizedAttr($query, $value, $data){
        if($value == 1){
            // 未分类：cate_id = 0 或 null
            return $query->where(function ($query) {
                $query->where('cate_id', 0)->whereOr('cate_id', null);
            });
        } else if($value == 0){
            // 已分类：cate_id > 0
            return $query->where('cate_id', '>', 0);
        }
        return $query;
   }

   //是否江苏资讯 is_jiangsu_zone 0-非江苏 1-江苏
   public function searchIsJiangsuZoneAttr($query, $value, $data){
        return $query->where('is_jiangsu_zone', $value);
   }

   //是否历史数据 is_history 0-日常 1-历史
   public function searchIsHistoryAttr($query, $value, $data){
        return $query->where('is_history', $value);
   }

   //是否文章有详情 has_detail 0-否 1-是    
   public function searchHasDetailAttr($query, $value, $data){
      if($value == 1){
        return $query->where('content_html', '<>', '');


      }else{
        //等于 null或者 空
        return $query->where(function ($query) {
        $query->whereNull('content_html')->whereOr('content_html', '');
        });
      }
   }
}
